3479d2ac76a537d73ad002c95e6e891e361998ea,python/src/com/jetbrains/python/validation/CompatibilityVisitor.java,CompatibilityVisitor,visitPyCallExpression,#PyCallExpression#,533

Before Change


  @Override
  public void visitPyCallExpression(PyCallExpression node) {
    super.visitPyCallExpression(node);
    int len = 0;
    StringBuilder message = new StringBuilder(myCommonMessage);

    for (int i = 0; i != myVersionsToProcess.size(); ++i) {
      LanguageLevel languageLevel = myVersionsToProcess.get(i);
      if (!languageLevel.isPy3K()) {
        final PsiElement firstChild = node.getFirstChild();
        if (firstChild != null) {
          final String name = firstChild.getText();
          if (PyNames.SUPER.equals(name)) {
            final PyArgumentList argumentList = node.getArgumentList();
            if (argumentList != null && argumentList.getArguments().length == 0) {
              len = appendLanguageLevel(message, len, languageLevel);
            }
          }
        }
      }
    }
    commonRegisterProblem(message, " not support this syntax. super() should have arguments in Python 2",
                          len, node, null);

    highlightIncorrectArguments(node);
  }

After Change


    final PsiElement firstChild = node.getFirstChild();
    if (firstChild != null && PyNames.SUPER.equals(firstChild.getText()) && ArrayUtil.isEmpty(node.getArguments())) {
      final StringBuilder message = new StringBuilder(myCommonMessage);
      final int len = appendLanguageLevels(message, myVersionsToProcess, level -> !level.isPy3K());

      commonRegisterProblem(message, " not support this syntax. super() should have arguments in Python 2", len, node, null);
    }

    highlightIncorrectArguments(node);